package tx.oopa.circuit.port;

/**
 * Abstract class for all types of input components. This class implements the
 * abstract method inherited from AbstractComponent and defines it's own
 * abstract method for each Input implementation.
 * 
 * @author Xander van Rijn
 *
 */
public abstract class AbstractInput extends AbstractComponent {
    
    protected AbstractInput() {}
    
    protected AbstractInput(String ID) {
        super(ID);
    }

    public Boolean setInput(Boolean bool) {
        return getLogicalInput();
    }
    
    /**
     * Returns a Boolean value which depends on the implementation of the
     * AbstractInput class.
     * 
     * @return True or False, depending on the implementation
     */
    protected abstract Boolean getLogicalInput();
}
